package com.xg.entity;


import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author jdh
 * @since 2023-03-30
 */
@Data
@TableName("used_car")
public class UsedCar implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "used_car_id", type = IdType.AUTO)
    private Integer usedCarId;

    /**
     * 车辆名称
     */
    @TableField("used_car_name")
    private String usedCarName;

    /**
     * 上牌时间 
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("used_car_registration_time")
    private Date usedCarRegistrationTime;

    /**
     * 出厂日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("used_car_production_time")
    private Date usedCarProductionTime;

    /**
     * 表显里程,单位:万公里
     */
    @TableField("used_car_mileage")
    private Double usedCarMileage;

    /**
     * 排量单位：L
     */
    @TableField("used_car_displacement")
    private Double usedCarDisplacement;

    /**
     * 变速箱1：手动2：自动
     */
    @TableField("used_car_gearbox")
    private Integer usedCarGearbox;

    /**
     * 到手价
     */
    @TableField("used_car_hand_sale")
    private Double usedCarHandSale;

    /**
     * 首付
     */
    @TableField("used_car_down_payment")
    private Double usedCarDownPayment;

    /**
     * 车系id
     */
    @TableField("used_car_series_id")
    private Integer usedCarSeriesId;

    /**
     * 车型id
     */
    @TableField("used_car_type_id")
    private Integer usedCarTypeId;

    /**
     * 汽车品牌关联id
     */
    @TableField("brand_id")
    private Integer brandId;

    /**
     * 生产方式
     */
    @TableField("used_car_production_mode")
    private String usedCarProductionMode;

    /**
     * 能源形式1：汽油2：柴油3：电动4：混动5：其他
     */
    @TableField("used_car_energy_planning")
    private Integer usedCarEnergyPlanning;

    /**
     * 商家id
     */
    @TableField("merchant_id")
    private Integer merchantId;

    /**
     * 座位数
     */
    @TableField("used_car_seat")
    private Integer usedCarSeat;

    /**
     * 颜色
     */
    @TableField("used_car_color")
    private String usedCarColor;

    /**
     * 是否新上架1:是2：否
     */
    @TableField("new_status")
    private Integer newStatus;

    /**
     * 车辆是否在售1:在售2已售出
     */
    @TableField("on_sale")
    private Integer onSale;

    /**
     * 审核状态1：待审核2：审核中3：审核通过4：审核驳回
     */
    @TableField("audit_status")
    private Integer auditStatus;

    /**
     * 过户次数
     */
    @TableField("used_car_tran_ship")
    private Integer usedCarTranShip;

    /**
     * 钥匙数量
     */
    @TableField("used_car_key_count")
    private Integer usedCarKeyCount;

    /**
     * 车辆基本情况描述
     */
    @TableField("used_car_describe")
    private String usedCarDescribe;

    /**
     * 车牌归属地
     */
    @TableField("user_car_license_plate")
    private String userCarLicensePlate;

    /**
     * 新车含税价
     */
    @TableField("used_car_tax_price")
    private Double usedCarTaxPrice;

    /**
     * 创建时间
     */
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /*
    * 搜索
    * */
    @TableField(exist = false)
    private String searchCondition;

    /**
     * 创建汽车品牌类,对应多对一的关系
     */
    @TableField(exist = false)
    private UsedCarBrand usedCarBrand;

    /**
     * 创建汽车车系类,对应多对一的关系
     */
    @TableField(exist = false)
    private UsedCarSeries usedCarSeries;


    /**
     * 创建汽车图片类,对应多对一的关系
     */
    @TableField(exist = false)
    private List<UsedCarImage> usedCarImage;

    /**
     * 创建汽车图片类,对应一对一的关系
     */
    @TableField(exist = false)
    private UsedCarImage carImage;
    
    /**
     * 上传的文件url的List
     */
    @TableField(exist = false)
    private List<String> fileList;

    /**
     * 最低价
     */
    @TableField(exist = false)
    private Integer minPrice;

    /**
     * 最高价
     */
    @TableField(exist = false)
    private Integer maxPrice;

    /**
     * 排序id
     */
    @TableField(exist = false)
    private Integer orderId;

}
